Nowadays, people access web contents and applications through an increasing number of client devices such as PDAs, cellular phones, automotive computers, portable computers, as well as traditional PCs. Different devices have their own characters in terms of interface, memory size, network connection, battery power, and so on. People would like to choose appropriate devices/channels to access information at a special environment. For example, a mobile phone user uses speech/voice interface to access web information and do transactions. When moving to a noisy environment, the user would like to switch to a text/GUI interface such as WAP or SMS, for the speech/voice interface does not work. But when she/he goes back to home or office, the best interfacing manner is changed to the traditional PC. But currently no mechanism supports this seamless switch across multiple channels with application session kept at the same time. So, when the user does something in one channel, and then switch to another, or the connection is interrupted and then resumed by the user in the same channel or another, a web application server cannot keep the history for the user and the user must do all things again from the beginning.
Since HTTP is a “stateless” (non-persistent) protocol, it is impossible to discriminate between visitors who access to the same web site, unless the server can somehow “mark” a visitor. This is done by storing a piece of information in the visitor's browser. In traditional three or n-tiered web application architecture, the web application Server maintains application state information (application session information), and browsers keep this session information in cookies, or by means of URL rewriting. This architecture can support single channel access, but not for multi-modal or multi-channel access.
FIG. 1 shows a conventional single channel communication system.
As shown in FIG. 1, the conventional single channel communication system comprises a terminal device 5 (briefly called device in the drawings) and a web server 3. During working time, the terminal device 5 passes application service request to the web server 3, the web server provides application service after receiving said request, such as, web browsing service, web shopping, ticket booking, and so on. During the process of receiving service, the user inputs some user information through the terminal device 5, such as user name, password, and so on. During the process that the terminal device 5 interacts with the web server 3, the web server 3 saves some information associated with the users in the terminal device 5 by means of cookie (described as AC in the drawings). When said terminal device 5 passes request to the web server 3 for the next time, said web server reads previously saved cookie from the memory of the terminal device 5, therefore said web server knows the operations performed by said terminal device 5 and the information associated with the users, so as to provide corresponding and prompt service for the users.
Time can be saved and continuity of application session can be fulfilled by means of cookie. For example, when the users order some product or service, the web server 3 fills out into the table the provided information associated with said user which is extracted from cookie. In addition, if the user performs a series of operations including five steps to the web server 3 through the terminal device 3, after the user performs steps 1-3 through the terminal device 3, the connection to the web server 3 is suspended and disconnected for other reasons, afterwards, the user requests said web server 3 to continue performing said series of operations by means of the same terminal device. Here, said web server 3 reads cookie previously stored in said terminal device 5, so as to enable the user to continue said operations following step 4. The connection between said terminal device 5 and said web server 3 is called a channel. The continuity of session can be guaranteed in a channel by means of cookie. However, if the user has two terminal devices A and B, the user uses the terminal device A to perform said operation steps 1-3, when turns to the terminal device B, said operation cannot be continued at the point of step 4. Because, after steps 1-3, the session information is saved in device A by means of cookie, while device B does not save said information, the web server 3 cannot read said session information from device B. Said operation can only be performed from the very beginning of the steps 1-5 instead of being performed continuously.
To support multi-modal or multi-channel access, a mechanism to share application session information across multiple channels/devices is needed.
To support multi-modal/multi-channel access, since there might be more scenarios such as switch, suspend and resume, etc., there will be more situations of requests than single channel. New request, normal next request, resumption request, switch request and the fragment request need to be distinguished.